#ifndef MAP_H
#define MAP_H

#include "../Shared/diplomacyclient.h"

typedef struct STerritory {
	// Information de base sur le territoire
	SCell cell;
	// Information sur les voisins
	unsigned int count_adjacent;
	unsigned int * adjacent;
	// Information sur le proprietaire
	unsigned int idTeam;
	// Information sur les troupes
	unsigned int idUnit;
	EUnitType u_type;
} STerritory;

typedef struct SMap {
	unsigned int size;
	STerritory * map;
} SMap;

// Initialisation de la carte
SMap * init_map(SCommManager * manager, unsigned int nbCell);

// Initialisation d'une cellule
void init_cell(SCommManager * manager, SMap * world, int id);

// Mise a jour de la carte
void update_map(SCommManager * manager, SMap * world);

// Calculer les demandes d'alliance
int compute_alliances(SMap * world, int * team, int * cell);

// Trouve un centre vide et renvoie idCell
int getEmptyCentre(SMap * world, int idTeam);

// Liberer la mémoire
void free_map(SMap * world);

// Affichage sommaire de la carte
void print_map(SMap * map);

#endif//->MAP_H
